tools/pygrub: fix solaris kernel sniff
authortools/pygrub: fix solaris kernel sniff <none@none>
Thu, 14 Jul 2011 17:09:58 +0000 (18:09 +0100)
committertools/pygrub: fix solaris kernel sniff <none@none>
Thu, 14 Jul 2011 17:09:58 +0000 (18:09 +0100)
Solaris 11 build 163+ removes '/platform/i86xpv/kernel/unix' and only the
64-bit PV kernel file '/platform/i86xpv/kernel/amd64/unix' exists.

This patch fixes the detection.

Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
Signed-off-by: Kurt Hackel <kurt.hackel@oracle.com>
Signed-off-by: Frank Che <frank.che@oracle.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/pygrub/src/pygrub

index df58f813bca6ce021e09ebdea3678a7a2147e480..843118534a56636ca79110491b0b30da616e30ff 100644 (file)
@@ -594,7 +594,8 @@ def supports64bitPVguest():
 # If nothing has been specified, look for a Solaris domU. If found, perform the
 # necessary tweaks.
 def sniff_solaris(fs, cfg):
-    if not fs.file_exists("/platform/i86xpv/kernel/unix"):
+    if not fs.file_exists("/platform/i86xpv/kernel/unix") and \
+       not fs.file_exists("/platform/i86xpv/kernel/amd64/unix"):
         return cfg
 
     if not cfg["kernel"]:
@@ -602,9 +603,11 @@ def sniff_solaris(fs, cfg):
           fs.file_exists("/platform/i86xpv/kernel/amd64/unix"):
             cfg["kernel"] = "/platform/i86xpv/kernel/amd64/unix"
             cfg["ramdisk"] = "/platform/i86pc/amd64/boot_archive"
-        else:
+        elif fs.file_exists("/platform/i86xpv/kernel/unix"):
             cfg["kernel"] = "/platform/i86xpv/kernel/unix"
             cfg["ramdisk"] = "/platform/i86pc/boot_archive"
+        else:
+            return cfg
 
     # Unpleasant. Typically we'll have 'root=foo -k' or 'root=foo /kernel -k',
     # and we need to maintain Xen properties (root= and ip=) and the kernel